APP_NAME=yunkeji-api.jar
#使用说明，用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}

#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1，存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}

#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
echo "准备运行"
#cd /mnt/java_project/gateway;
nohup java -jar $APP_NAME -Xmx500m -Xms500m  > /dev/null 2>&1 &
echo "运行完毕"
tail -f 999999 /mnt/houpe/logs/sys-error.log
fi
}

#停止方法
stop(){
is_exist

if [ $? -eq "0" ]; then # 不为空
    echo "the service pid is ${pid} , kill it now !"
    kill -15 $pid
    #rm -rf $PID_NAME
    echo "wait for 5 seconds..."
    sleep 5
    #is_run_again=`ps -ef | grep ${pid}`
    is_exist
    if [ $? -eq "0" ]; then # 不为空
      echo "the service is running now , pid is ${pid} , kill it again !"
      kill -9  $pid
      sleep 2
      echo "the $JAR_NAME process stopped !"
    else
      echo "the ${JAR_NAME} is not running !"
    fi
  else
    echo "the ${JAR_NAME} is not running !"
  fi

}

#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}

#重启
restart(){
stop
start
}

#根据输入参数，选择执行对应方法，不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
